var path = require("path");
daoModule = require("./DAO");
databaseModule = require(path.join(process.cwd(), "modules/database"));


/**
 * 判断是否存在成员
 *
 * @param  {[type]}   id 用户名
 * @param  {Function} cb       回调函数
 *
 */
module.exports.exists = function (id, cb) {
    var db = databaseModule.getDatabase();
    var Model = db.models.MemberModel;
    Model.exists({"user_id": id}, function (err, isExists) {
        if (err) return cb(err);
        cb(null, isExists);
    });
}

/**
 * 创建成员
 *
 * @param  {[type]}   obj 管理员信息
 * @param  {Function} cb  回调函数
 */
module.exports.create = function (obj, cb) {
    console.log(obj)
    daoModule.create("MemberModel", obj, cb);
}

/**
 * 获取成员列表
 *
 * @param  {Function} cb 回调函数
 */
module.exports.list = function (cb) {
    daoModule.list("MemberModel", conditions, function (err, models) {
        if (err) return cb(err, null);
        cb(null, models);
    });
}

/**
 * 模糊查询成员数量
 *
 * @param  {[type]}   key 关键词
 * @param  {Function} cb  回调函数
 */
module.exports.countByKey = function (key, cb) {
    db = databaseModule.getDatabase();
    sql = "SELECT count(*) as count FROM sp_member";
    if (key) {
        sql += " WHERE user_name LIKE ?";
        database.driver.execQuery(
            sql
            , ["%" + key + "%"], function (err, result) {
                if (err) return cb("查询执行出错");
                cb(null, result[0]["count"]);
            });
    } else {
        database.driver.execQuery(sql, function (err, result) {
            if (err) return cb("查询执行出错");
            cb(null, result[0]["count"]);
        });
    }

}


/**
 * 通过关键词查询用户
 *
 * @param  {[type]}   key    关键词
 * @param  {[type]}   offset
 * @param  {[type]}   limit
 * @param  {Function} cb     回调函数
 */
module.exports.findByKey = function (key, offset, limit, type, cb) {
    db = databaseModule.getDatabase();
    sql = "SELECT * FROM sp_member";

    if (key) {
        if (type == "user_name") {
            sql += " WHERE user_name LIKE ? LIMIT ?,?";
            database.driver.execQuery(
                sql
                , ["%" + key + "%", offset, limit], function (err, managers) {
                    if (err) return cb("查询执行出错");
                    cb(null, managers);
                });
        } else {

            sql += " WHERE user_id LIKE ? LIMIT ?,?";
            database.driver.execQuery(
                sql
                , ["%" + key + "%", offset, limit], function (err, managers) {
                    if (err) return cb("查询执行出错");
                    cb(null, managers);
                });

        }


    } else {
        sql += " LIMIT ?,? ";
        database.driver.execQuery(sql, [offset, limit], function (err, managers) {
            if (err) return cb("查询执行出错");
            cb(null, managers);
        });
    }
}


/**
 * 通过关键词查询用户
 *
 * @param  {[type]}   id    学号
 * @param  {Function} cb     回调函数
 *
 */
module.exports.deleteByUserID = function (user_id, cb) {
    db = databaseModule.getDatabase();
    sql = "delete from sp_member WHERE id = ?";
    database.driver.execQuery(
        sql
        , [user_id], function (err, managers) {
            if (err) return cb("查询执行出错");
            cb(null, managers);
        });
}



/**
 * 通过关键词查询用户
 *
 * @param  {[type]}   id    id

 * @param  {Function} cb     回调函数
 */
module.exports.findByID = function (id, cb) {
    db = databaseModule.getDatabase();
    sql = "SELECT *  FROM sp_member";
    if(id) {
        sql += " WHERE id = ?";
        database.driver.execQuery(
            sql
            ,[id],function(err,result){
                if(err) return cb("查询执行出错");
                cb(null,result);
            });
    } else {
        return cb("查询执行出错");

    }
}
/**
 * 通过关键词查询用户
 *
 * @param  {[type]}   id    id

 * @param  {Function} cb     回调函数
 */
module.exports.update = function (id,obj, cb) {
    daoModule.update('MemberModel',id,obj,cb)
}

